Technical Field
Embodiments described herein relate to the field of graphical information processing and more particularly, to processing source pixel data of varying formats and bit-widths.
Description of the Related Art
Part of the operation of many computer systems, including portable digital devices such as mobile phones, notebook computers and the like, is to employ a display device, such as a liquid crystal display (LCD), to display images, video information/streams, and data. Accordingly, these systems typically incorporate functionality for generating images and data, including video information, which are subsequently output to the display device. Such devices typically include video graphics circuitry (i.e., a display pipeline) to process images and video information for subsequent display.
In digital imaging, the smallest item of information in an image is called a “picture element,” more generally referred to as a “pixel.” For convenience, pixels are generally arranged in a regular two-dimensional grid. By using such an arrangement, many common operations can be implemented by uniformly applying the same operation to each pixel independently. Since each pixel is an elemental part of a digital image, a greater number of pixels can provide a more accurate representation of the digital image. To represent a specific color on an electronic display, each pixel may have three values, one each for the amounts of red, green, and blue present in the desired color. Some formats for electronic displays may also include a fourth value, called alpha, which represents the transparency of the pixel. This format is commonly referred to as ARGB or RGBA. Another format for representing pixel color is YCbCr, where Y corresponds to the luma, or brightness, of a pixel and Cb and Cr correspond to two color-difference chrominance components, representing the blue-difference (Cb) and red-difference (Cr).
Most images and video information displayed on display devices such as LCD screens are interpreted as a succession of ordered image frames, or frames for short. While generally a frame is one of the many still images that make up a complete moving picture or video stream, a frame can also be interpreted more broadly as simply a still image displayed on a digital (discrete or progressive scan) display. A frame typically consists of a specified number of pixels according to the resolution of the image/video frame. Most graphics systems use memories (commonly referred to as “frame buffers”) to store the pixels for image and video frame information. The information in a frame buffer typically consists of color values for every pixel to be displayed on the screen. Color values are commonly stored in 1-bit monochrome, 4-bit palletized, 8-bit palletized, 16-bit high color and 24-bit true color formats. An additional alpha channel is oftentimes used to retain information about pixel transparency. The total amount of the memory required for frame buffers to store image/video information depends on the resolution of the output signal, and on the color depth and palette size. The High-Definition Television (HDTV) format, for example, is composed of up to 1080 rows of 1920 pixels per row, or almost 2.1M pixels per frame.
The source images which are processed may vary over time, in the type of format (e.g., ARGB, YCbCr) of the source image data, the downsampling ratio (e.g., 4:4:4, 4:2:2), the bit-width, and other characteristics. The bit-width may be defined as the number of binary digits, or bits, in each source pixel component (e.g., red pixel component, blue pixel component, luma pixel component). It can be challenging to process source pixel data of varying formats and bit-widths.